package com.malou.client.ventas.ubigeo;

import java.util.List;

import com.extjs.gxt.ui.client.data.BaseListLoader;
import com.extjs.gxt.ui.client.data.BeanModel;
import com.extjs.gxt.ui.client.data.BeanModelReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ListLoader;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.RpcProxy;
import com.extjs.gxt.ui.client.store.ListStore;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.malou.client.reportes.ReporteClientesPanel;
import com.malou.client.reportes.ReportePrendasVendidas_Cliente;
import com.malou.client.ventas.direccioncliente.DireccionClienteDialog;

public class Ubigeos {
	private static UbigeoServiceAsync mps = GWT.create(UbigeoService.class);

	public static ListStore<BeanModel> storedepartamento;
	public static ListLoader<ListLoadResult<ModelData>> loaderdepartamento;
	public static ListStore<BeanModel> storeprovincia;
	public static ListLoader<ListLoadResult<ModelData>> loaderprovincia;
	public static ListStore<BeanModel> storedistrito;
	public static ListLoader<ListLoadResult<ModelData>> loaderdistrito;

	
	public static String departamento;

	public static String provincia;
	public static DireccionClienteDialog direccionclientedialog;
	public static ReporteClientesPanel  reporteclientepanel;
	public static ReportePrendasVendidas_Cliente reporteprendasvendidascliente;
	
	public static void getComboPaisCliente(){
		mps.getPais(new AsyncCallback<List<Pais>>() {
			
			@Override
			public void onSuccess(List<Pais> result) {
				direccionclientedialog.setListaPais(result);
							
			}
			
			@Override
			public void onFailure(Throwable caught) {
				// TODO Auto-generated method stub
				
			}
		});

			
	}
	public static void getComboPaisReporte(){
		mps.getPais(new AsyncCallback<List<Pais>>() {
			
			@Override
			public void onSuccess(List<Pais> result) {
					reporteclientepanel.setListaPais(result);
					
			}
			
			@Override
			public void onFailure(Throwable caught) {
				// TODO Auto-generated method stub
				
			}
		});

			
	}
	
	public static void getComboPaisReportePredasVendidasCliente(){
		mps.getPais(new AsyncCallback<List<Pais>>(){

			@Override
			public void onSuccess(List<Pais> result) {
				reporteprendasvendidascliente.setListaPais(result);
			}
			
			@Override
			public void onFailure(Throwable caught) {
				
				
			}
			
		});
	}
	
	
	public static void getComboDepartamento(){
		RpcProxy<List<Ubigeo>> proxy = new RpcProxy<List<Ubigeo>>() {

			@Override
			protected void load(Object loadConfig,AsyncCallback<List<Ubigeo>> callback) {				
				mps.getDepartamento(callback);
			}		      
			
	    };
	    
	    loaderdepartamento= new BaseListLoader<ListLoadResult<ModelData>>(proxy, new BeanModelReader());
	    
	    storedepartamento = new ListStore<BeanModel>(loaderdepartamento);
	}
	
	public static void getComboProvincia(){
		RpcProxy<List<Ubigeo>> proxy = new RpcProxy<List<Ubigeo>>() {

			@Override
			protected void load(Object loadConfig,AsyncCallback<List<Ubigeo>> callback) {				
				mps.getProvincia(departamento, callback);
			}		      
	  };
	    
	    loaderprovincia= new BaseListLoader<ListLoadResult<ModelData>>(proxy, new BeanModelReader());
	    storeprovincia = new ListStore<BeanModel>(loaderprovincia);
	}
	
	public static void getComboDistrito(){
		RpcProxy<List<Ubigeo>> proxy = new RpcProxy<List<Ubigeo>>() {
			@Override
			protected void load(Object loadConfig,AsyncCallback<List<Ubigeo>> callback) {				
				mps.getDistrito(provincia, callback);
			}		      
			
	    };
	    
	    loaderdistrito= new BaseListLoader<ListLoadResult<ModelData>>(proxy, new BeanModelReader());
	    storedistrito = new ListStore<BeanModel>(loaderdistrito);
	}
}
